#define _CRT_SECURE_NO_WARNINGS 1

#include "SLT.h"

void test1() {
	SListNode* head = NULL;
	SListPushBack(&head, 1);
	SListPrint(head);
	SListPushBack(&head, 2);
	SListPrint(head);
	SListPushBack(&head, 3);
	SListPrint(head);
}

void test2() {
	SListNode* head = NULL;
	SListPushFront(&head, 1);
	SListPrint(head);
	SListPushFront(&head, 2);
	SListPrint(head);
	SListPushFront(&head, 3);
	SListPrint(head);
}

void test3() {
	SListNode* head = NULL;
	SListPushBack(&head, 1);
	SListPrint(head);
	SListPushBack(&head, 2);
	SListPrint(head);
	SListPushBack(&head, 3);
	SListPrint(head);

	SListPopBack(&head);
	SListPrint(head);
	SListPopBack(&head);
	SListPrint(head);
	SListPopBack(&head);
	SListPrint(head);
}

void test4() {
	SListNode* head = NULL;
	SListPushFront(&head, 1);
	SListPrint(head);
	SListPushFront(&head, 2);
	SListPrint(head);
	SListPushFront(&head, 3);
	SListPrint(head);

	SListPopFront(&head);
	SListPrint(head);
	SListPopFront(&head);
	SListPrint(head);
	SListPopFront(&head);
	SListPrint(head);
}

void test5() {
	SListNode* head = NULL;
	SListPushFront(&head, 1);
	SListPrint(head);
	SListPushFront(&head, 2);
	SListPrint(head);
	SListPushFront(&head, 3);
	SListPrint(head);

	SListInsertAfter(SListFind(head, 2), 5);
	SListPrint(head);

}

void test6() {
	SListNode* head = NULL;
	SListPushFront(&head, 1);
	SListPrint(head);
	SListPushFront(&head, 2);
	SListPrint(head);
	SListPushFront(&head, 3);
	SListPrint(head);

	SListEraseAfter(SListFind(head, 2));
	SListPrint(head);

	SLTDestroy(&head);
}

void test7() {
	SListNode* head = NULL;
	SListPushFront(&head, 1);
	SListPrint(head);
	SListPushFront(&head, 2);
	SListPrint(head);
	SListPushFront(&head, 3);
	SListPrint(head);

	SLTInsert(&head, SListFind(head, 3), 5);
	SListPrint(head);

	SLTDestroy(&head);
}

void test8() {
	SListNode* head = NULL;
	SListPushFront(&head, 1);
	SListPrint(head);

	SLTErase(&head, SListFind(head, 1));
	SListPrint(head);

}

int main() {
	test8();

	return 0;
}